package siac.com.controller;

import java.util.ArrayList;
import java.util.List;

import javax.faces.component.UIComponent;
import javax.faces.component.UIPanel;

//import org.richfaces.component.UIPanel;

//import bna.ao.dao.UsersDAO;
//import bna.ao.entity.Users;

public class UsuarioCrudBean {
   
     public static final String PESQUISAR_STATE = "pesquisar";  
     public static final String ADICIONAR_STATE = "adicionar";  
     public static final String EDITAR_STATE = "editar";  
   
     private String currentState = PESQUISAR_STATE;  
     private String nome;  
     //private Users usuario;  
     //private List<Users> usuarios = new ArrayList<Users>();  
     private UIPanel panelForm;  
     // mÈtodos gets e sets  
   
     /** 
      * Pesquisa usu·rios por nome 
      */  
     public void pesquisar() { 
    	 ///UsersDAO dao = new UsersDAO();
         this.setCurrentState(PESQUISAR_STATE);  
         //this.usuarios = dao.findUsers(); //.findUsuarioByNome(this.nome);  
     }  
   
     /** 
      * Prepara view adicionar 
      */  
     public void prepareAdicionar() {  
         this.clear();  
         this.setCurrentState(ADICIONAR_STATE);  
     }  
   
     /** 
      * Adiciona usu·rio 
      */  
     public void adicionar() {  
         ///UsuarioRepositorio.add(this.usuario);  
         this.pesquisar();  
     }  
   
     /** 
      * Prepara view editar 
      */  
     public void prepareEditar() {  
         this.setCurrentState(EDITAR_STATE);  
     }  
   
     /** 
      * Edita usu·rio 
      */  
     public void editar() {  
         // j· edita diretamente na lista (a lista est· como static)  
         this.pesquisar();  
     }  
   
     /** 
      * Exclui usu·rio 
      */  
     public void excluir() {  
         ///UsuarioRepositorio.delete(this.usuario);  
         this.pesquisar();  
     }  
   
     /** 
      * Referente ao bot„o voltar 
      */  
     public void voltar() {  
         this.clear();  
         this.pesquisar();  
     }  
   
     /** 
      * Limpa atributos 
      */  
     private void clear() {  
         this.nome = "";  
         //this.usuario = new Users();  
         this.cleanSubmittedValues(this.panelForm);  
     }  
   
     /* 
      * MÈtodos que expıem o estado ‡ p·gina 
      */  
   
     public boolean isPesquisarState() {  
         String state = this.getCurrentState();  
         return (state == null || PESQUISAR_STATE.equals(state));  
     }  
     public boolean isAdicionarState() {  
         return ADICIONAR_STATE.equals(this.getCurrentState());  
     }  
     public boolean isEditarState() {  
         return EDITAR_STATE.equals(this.getCurrentState());  
     }  
   
     /** 
      * Limpa os componentes filhos para que depois eles possam ser recriados 
      * @param component 
      */  
     protected void cleanSubmittedValues(UIComponent component) {  
         component.getChildren().clear();  
     }

	public String getCurrentState() {
		return currentState;
	}

	public void setCurrentState(String currentState) {
		this.currentState = currentState;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	/*
	public Users getUsuario() {
		return usuario;
	}

	public void setUsuario(Users usuario) {
		this.usuario = usuario;
	}

	public List<Users> getUsuarios() {
		return usuarios;
	}

	public void setUsuarios(List<Users> usuarios) {
		this.usuarios = usuarios;
	}
	*/

	public UIPanel getPanelForm() {
		return panelForm;
	}

	public void setPanelForm(UIPanel panelForm) {
		this.panelForm = panelForm;
	}  
     
     
}  